package com.itheima.dao;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.itheima.domain.Book;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

@SpringBootTest
public class BookDaoTestCase {

    @Autowired
    private BookDao bookDao;

    @Test
    void getbyid(){
        System.out.println(bookDao.selectById(1));
    }

    /**
     * 根据用户id修改用户信息
     */
    @Test
    void updateById(){
        Book book = new Book();
        book.setId(1);
        book.setType("测试数据");
        book.setName("测试数据");
        book.setDescription("测试数据");
        bookDao.updateById(book);
    }

    /**
     * 增加用户
     */
    @Test
    void insert(){
        Book book = new Book();
        book.setType("测试数据");
        book.setName("测试数据");
        book.setDescription("测试数据");

        bookDao.insert(book);
    }

    /**
     * 根据id删除用户
     */
    @Test
    void delete(){
        bookDao.deleteById(9);
    }

    /**
     * 查询所有用户
     */
    @Test
    void gitAll(){
        System.out.println(bookDao.selectList(null));
    }

    /**
     * 分页查询
     */
    @Test
    void getPage(){
        IPage page = new Page(1,5);
        bookDao.selectPage(page,null);
        System.out.println("当前页     "+page.getCurrent());
        System.out.println("数据条数    "+page.getTotal());
        System.out.println("能分几页    "+page.getPages());
        System.out.println("当前页的总条数     "+page.getSize());
        System.out.println("当前页的全部数据中数组索引为二的是   "+page.getRecords().get(2));
    }

    /**
     * 按条件查询 模糊查询
     */
    @Test
    void getUser(){
        String name="测试";
        LambdaQueryWrapper<Book> queryWrapper = new LambdaQueryWrapper();
        /* 传入三个参数
        第一个 为布尔值类型 如果为true 就查询 为 fales 则不查询
        第二个 为要查询的字段
        第三个 为要查询的内容*/
        queryWrapper.like(name != null,Book::getName,name);
        bookDao.selectList(queryWrapper);

    }
}
